//
// Created by zuo on 2024/6/29.
//

#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    // min max
    printf("%d\n", min(3, 5)); // 3
    printf("%d\n", max(3, 5)); // 5

    // min_element(st,ed)  max_element(st,ed)   返回地址 [st,ed) 中最小\最大的那个值的地址（迭代器）
    vector<int> v = {1, 6, 2, 3, 4, 5};
    // 输出最大的元素， *表示解引用，即通过地址(迭代器)得到 值
    cout << *max_element(v.begin(), v.end()) << '\n'; // 6

    //nth_element(st,k,ed) 第二个参数位置的元素将处于正确位置，其他位置元素的顺序可能是任意的，但前面的都比它小，后面的都比它大。
    nth_element(v.begin(), v.begin() + 3, v.end());
    for (auto i : v) cout << i << ' '; // * * * 4 @ @   *比4小  @比4大

    return 0;
}
